﻿//using System;
//using System.Collections.Generic;
//using System.Globalization;
//using System.Linq;
//using System.Text;

//namespace RiskMan.DataClass.Models.Plaza_II
//{
//    public class Deal
//    {
//        #region variables

//        #region parameters
//        private Int64 _replicationId; // replID
//        private Int64 _replicationRevision; // replRev
//        private Int64 _replicationAct; // replAct

//        private Int64 _dealId; // id_deal
//        private Int32 _sessionId; // sess_id
//        private Int32 _isinId; // isin_id
//        private Decimal _price; // price
//        private Int32 _amount; // amount
//        private DateTime _moment; // moment
//        private String _sellerCode; // code_sell
//        private String _buyerCode; // code_buy

//        private Int64 _sellOrderId; // id_ord_sell
//        private Int32 _sellOrderExternalId; // ext_id_sell
//        private String _sellComment; // comment_sell
//        private Boolean _sellTrust; // trust_sell
//        private Int32 _sellStatus; // status_sell

//        private Int64 _buyOrderId; // id_ord_buy
//        private Int32 _buyOrderExternalId; // ext_id_buy
//        private String _buyComment; // comment_buy
//        private Boolean _buyTrust; // trust_buy
//        private Int32 _buyStatus; // status_buy

//        private Int32 _position; // pos
//        private Boolean _noSystem; // nosystem
//        private Int64 _repoId; // id_repo

//        private Boolean _sellHedge; // hedge_sell
//        private Boolean _buyHedge; // hedge_buy

//        private Decimal _sellFee; // fee_sell
//        private Decimal _buyFee; // fee_buy

//        private String _sellerLogin; // login_sell
//        private String _buyerLogin; // login_buy
//        private String _sellerRtsCode; // code_rts_sell
//        private String _buyerRtsCode; // code_rts_buy
//        private Int64 _multilegDealId; // id_deal_multileg
//        #endregion

//        #region properties
//        public Int64 ReplicationId
//        {
//            set { _replicationId = value; }
//            get { return _replicationId; }
//        }

//        public Int64 ReplicationRevision
//        {
//            set { _replicationRevision = value; }
//            get { return _replicationRevision; }
//        }

//        public Int64 ReplicationAct
//        {
//            set { _replicationAct = value; }
//            get { return _replicationAct; }
//        }

//        public Int64 DealId
//        {
//            set { _dealId = value; }
//            get { return _dealId; }
//        }

//        public Int32 SessionId
//        {
//            set { _sessionId = value; }
//            get { return _sessionId; }
//        }

//        public Int32 IsinId
//        {
//            set { _isinId = value; }
//            get { return _isinId; }
//        }

//        public Decimal Price
//        {
//            set { _price = value; }
//            get { return _price; }
//        }

//        public Int32 Amount
//        {
//            set { _amount = value; }
//            get { return _amount; }
//        }

//        public DateTime Moment
//        {
//            set { _moment = value; }
//            get { return _moment; }
//        }

//        public String SellerCode
//        {
//            set { _sellerCode = value; }
//            get { return _sellerCode; }
//        }

//        public String BuyerCode
//        {
//            set { _buyerCode = value; }
//            get { return _buyerCode; }
//        }

//        public Int64 SellOrderId
//        {
//            set { _sellOrderId = value; }
//            get { return _sellOrderId; }
//        }

//        public Int32 SellOrderExternalId
//        {
//            set { _sellOrderExternalId = value; }
//            get { return _sellOrderExternalId; }
//        }

//        public String SellComment
//        {
//            set { _sellComment = value; }
//            get { return _sellComment; }
//        }

//        public Boolean SellTrust
//        {
//            set { _sellTrust = value; }
//            get { return _sellTrust; }
//        }

//        public Int32 SellStatus
//        {
//            set { _sellStatus = value; }
//            get { return _sellStatus; }
//        }

//        public Int64 BuyOrderId
//        {
//            set { _buyOrderId = value; }
//            get { return _buyOrderId; }
//        }

//        public Int32 BuyOrderExternalId
//        {
//            set { _buyOrderExternalId = value; }
//            get { return _buyOrderExternalId; }
//        }

//        public String BuyComment
//        {
//            set { _buyComment = value; }
//            get { return _buyComment; }
//        }

//        public Boolean BuyTrust
//        {
//            set { _buyTrust = value; }
//            get { return _buyTrust; }
//        }

//        public Int32 BuyStatus
//        {
//            set { _buyStatus = value; }
//            get { return _buyStatus; }
//        }

//        public Int32 Position
//        {
//            set { _position = value; }
//            get { return _position; }
//        }

//        public Boolean NoSystem
//        {
//            set { _noSystem = value; }
//            get { return _noSystem; }
//        }

//        public Int64 RepoId
//        {
//            set { _repoId = value; }
//            get { return _repoId; }
//        }

//        public Boolean SellHedge
//        {
//            set { _sellHedge = value; }
//            get { return _sellHedge; }
//        }

//        public Boolean BuyHedge
//        {
//            set { _buyHedge = value; }
//            get { return _buyHedge; }
//        }

//        public Decimal SellFee
//        {
//            set { _sellFee = value; }
//            get { return _sellFee; }
//        }

//        public Decimal BuyFee
//        {
//            set { _buyFee = value; }
//            get { return _buyFee; }
//        }

//        public String SellerLogin
//        {
//            set { _sellerLogin = value; }
//            get { return _sellerLogin; }
//        }

//        public String BuyerLogin
//        {
//            set { _buyerLogin = value; }
//            get { return _buyerLogin; }
//        }

//        public String SellerRtsCode
//        {
//            set { _sellerRtsCode = value; }
//            get { return _sellerRtsCode; }
//        }

//        public String BuyerRtsCode
//        {
//            set { _buyerRtsCode = value; }
//            get { return _buyerRtsCode; }
//        }

//        public Int64 MultilegDealId
//        {
//            set { _multilegDealId = value; }
//            get { return _multilegDealId; }
//        }
//        #endregion

//        #endregion

//        #region processing
//        public static Deal ParseDeal(Dictionary<String, String> relation)
//        {
//            Deal deal = new Deal();
//            deal.Parse(relation);
//            return deal;
//        }

//        public void Parse(Dictionary<String, String> relation)
//        {
//            foreach (String field in relation.Keys)
//            {
//                String value = relation[field];

//                switch (field)
//                {
//                    case "replID": Int64.TryParse(value, out _replicationId); break;
//                    case "replRev": Int64.TryParse(value, out _replicationRevision); break;
//                    case "replAct": Int64.TryParse(value, out _replicationAct); break;

//                    case "id_deal": Int64.TryParse(value, out _dealId); break;
//                    case "sess_id": Int32.TryParse(value, out _sessionId); break;
//                    case "isin_id": Int32.TryParse(value, out _isinId); break;
//                    case "price": Decimal.TryParse(value, NumberStyles.Number, CultureInfo.GetCultureInfo("en-US"), out _price); break;
//                    case "amount": Int32.TryParse(value, out _amount); break;
//                    case "moment": DateTime.TryParse(value, out _moment); break; // TODO: возможно нужен форматтер
//                    case "code_sell": _sellerCode = value; break;
//                    case "code_buy": _buyerCode = value; break;

//                    case "id_ord_sell": Int64.TryParse(value, out _sellOrderId); break;
//                    case "ext_id_sell": Int32.TryParse(value, out _sellOrderExternalId); break;
//                    case "comment_sell": _sellComment = value; break;
//                    case "trust_sell": Boolean.TryParse(value, out _sellTrust); break;
//                    case "status_sell": Int32.TryParse(value, out _sellStatus); break;

//                    case "id_ord_buy": Int64.TryParse(value, out _buyOrderId); break;
//                    case "ext_id_buy": Int32.TryParse(value, out _buyOrderExternalId); break;
//                    case "comment_buy": _buyComment = value; break;
//                    case "trust_buy": Boolean.TryParse(value, out _buyTrust); break;
//                    case "status_buy": Int32.TryParse(value, out _buyStatus); break;

//                    case "pos": Int32.TryParse(value, out _position); break;
//                    case "nosystem": Boolean.TryParse(value, out _noSystem); break;
//                    case "id_repo": Int64.TryParse(value, out _repoId); break;

//                    case "hedge_sell": Boolean.TryParse(value, out _sellHedge); break;
//                    case "hedge_buy": Boolean.TryParse(value, out _buyHedge); break;

//                    case "fee_sell": Decimal.TryParse(value, NumberStyles.Number, CultureInfo.GetCultureInfo("en-US"), out _sellFee); break;
//                    case "fee_buy": Decimal.TryParse(value, NumberStyles.Number, CultureInfo.GetCultureInfo("en-US"), out _buyFee); break;

//                    case "login_sell": _sellerLogin = value; break;
//                    case "login_buy": _buyerLogin = value; break;
//                    case "code_rts_sell": _sellerRtsCode = value; break;
//                    case "code_rts_buy": _buyerRtsCode = value; break;
//                    case "id_deal_multileg": Int64.TryParse(value, out _multilegDealId); break;
//                };
//            }
//        }
//        #endregion
//    }
//}
